home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / OpenGL 1.0 SDK / Source / Examples / Renderer Info / renderer_info.c next >
Encoding:
C/C++ Source or Header  |  1999-05-18  |  6.6 KB  |  178 lines  |  [TEXT/CWIE]

  1. #include "agl.h"
  2. #include <stdlib.h>
  3.  
  4. static void PrintBufferModes(GLint v)
  5. {
  6.     if(v & AGL_MONOSCOPIC_BIT)   printf("            AGL_MONOSCOPIC_BIT\n");
  7.     if(v & AGL_STEREOSCOPIC_BIT) printf("            AGL_STEREOSCOPIC_BIT\n");
  8.     if(v & AGL_SINGLEBUFFER_BIT) printf("            AGL_SINGLEBUFFER_BIT\n");
  9.     if(v & AGL_DOUBLEBUFFER_BIT) printf("            AGL_DOUBLEBUFFER_BIT\n");
  10. }
  11.  
  12. static void PrintColorModes(GLint v)
  13. {
  14.     if(v & AGL_RGB8_BIT)         printf("            AGL_RGB8_BIT\n");
  15.     if(v & AGL_RGB8_A8_BIT)      printf("            AGL_RGB8_A8_BIT\n");
  16.     if(v & AGL_BGR233_BIT)       printf("            AGL_BGR233_BIT\n");
  17.     if(v & AGL_BGR233_A8_BIT)    printf("            AGL_BGR233_A8_BIT\n");
  18.     if(v & AGL_RGB332_BIT)       printf("            AGL_RGB332_BIT\n");
  19.     if(v & AGL_RGB332_A8_BIT)    printf("            AGL_RGB332_A8_BIT\n");
  20.     if(v & AGL_RGB444_BIT)       printf("            AGL_RGB444_BIT\n");
  21.     if(v & AGL_ARGB4444_BIT)     printf("            AGL_ARGB4444_BIT\n");
  22.     if(v & AGL_RGB444_A8_BIT)    printf("            AGL_RGB444_A8_BIT\n");
  23.     if(v & AGL_RGB555_BIT)       printf("            AGL_RGB555_BIT\n");
  24.     if(v & AGL_ARGB1555_BIT)     printf("            AGL_ARGB1555_BIT\n");
  25.     if(v & AGL_RGB555_A8_BIT)    printf("            AGL_RGB555_A8_BIT\n");
  26.     if(v & AGL_RGB565_BIT)       printf("            AGL_RGB565_BIT\n");
  27.     if(v & AGL_RGB565_A8_BIT)    printf("            AGL_RGB565_A8_BIT\n");
  28.     if(v & AGL_RGB888_BIT)       printf("            AGL_RGB888_BIT\n");
  29.     if(v & AGL_ARGB8888_BIT)     printf("            AGL_ARGB8888_BIT\n");
  30.     if(v & AGL_RGB888_A8_BIT)    printf("            AGL_RGB888_A8_BIT\n");
  31.     if(v & AGL_RGB101010_BIT)    printf("            AGL_RGB101010_BIT\n");
  32.     if(v & AGL_ARGB2101010_BIT)  printf("            AGL_ARGB2101010_BIT\n");
  33.     if(v & AGL_RGB101010_A8_BIT) printf("            AGL_RGB101010_A8_BIT\n");
  34.     if(v & AGL_RGB121212_BIT)    printf("            AGL_RGB121212_BIT\n");
  35.     if(v & AGL_ARGB12121212_BIT) printf("            AGL_ARGB12121212_BIT\n");
  36.     if(v & AGL_RGB161616_BIT)    printf("            AGL_RGB161616_BIT\n");
  37.     if(v & AGL_ARGB16161616_BIT) printf("            AGL_ARGB16161616_BIT\n");
  38.     if(v & AGL_INDEX8_BIT)       printf("            AGL_INDEX8_BIT\n");
  39.     if(v & AGL_INDEX16_BIT)      printf("            AGL_INDEX16_BIT\n");
  40. }
  41.  
  42. static void PrintBitModes(GLint v)
  43. {
  44.     if(v & AGL_0_BIT)            printf("            AGL_0_BIT\n");
  45.     if(v & AGL_1_BIT)            printf("            AGL_1_BIT\n");
  46.     if(v & AGL_2_BIT)            printf("            AGL_2_BIT\n");
  47.     if(v & AGL_3_BIT)            printf("            AGL_3_BIT\n");
  48.     if(v & AGL_4_BIT)            printf("            AGL_4_BIT\n");
  49.     if(v & AGL_5_BIT)            printf("            AGL_5_BIT\n");
  50.     if(v & AGL_6_BIT)            printf("            AGL_6_BIT\n");
  51.     if(v & AGL_8_BIT)            printf("            AGL_8_BIT\n");
  52.     if(v & AGL_10_BIT)           printf("            AGL_10_BIT\n");
  53.     if(v & AGL_12_BIT)           printf("            AGL_12_BIT\n");
  54.     if(v & AGL_16_BIT)           printf("            AGL_16_BIT\n");
  55.     if(v & AGL_24_BIT)           printf("            AGL_24_BIT\n");
  56.     if(v & AGL_32_BIT)           printf("            AGL_32_BIT\n");
  57.     if(v & AGL_48_BIT)           printf("            AGL_48_BIT\n");
  58.     if(v & AGL_64_BIT)           printf("            AGL_64_BIT\n");
  59.     if(v & AGL_96_BIT)           printf("            AGL_96_BIT\n");
  60.     if(v & AGL_128_BIT)          printf("            AGL_128_BIT\n");
  61. }
  62.  
  63. static void PrintInfoStats(AGLRendererInfo info)
  64. {
  65.     GLint rv;
  66.     
  67.     aglDescribeRenderer(info, AGL_RENDERER_ID, &rv);
  68.     printf("        AGL_RENDERER_ID     : 0x%X\n", rv);
  69.     
  70.     aglDescribeRenderer(info, AGL_OFFSCREEN, &rv);
  71.     printf("        AGL_OFFSCREEN       : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  72.     
  73.     aglDescribeRenderer(info, AGL_FULLSCREEN, &rv);
  74.     printf("        AGL_FULLSCREEN      : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  75.     
  76.     aglDescribeRenderer(info, AGL_WINDOW, &rv);
  77.     printf("        AGL_WINDOW          : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  78.     
  79.     aglDescribeRenderer(info, AGL_ACCELERATED, &rv);
  80.     printf("        AGL_ACCELERATED     : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  81.     
  82.     aglDescribeRenderer(info, AGL_ROBUST, &rv);
  83.     printf("        AGL_ROBUST          : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  84.     
  85.     aglDescribeRenderer(info, AGL_BACKING_STORE, &rv);
  86.     printf("        AGL_BACKING_STORE   : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  87.     
  88.     aglDescribeRenderer(info, AGL_MP_SAFE, &rv);
  89.     printf("        AGL_MP_SAFE         : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  90.     
  91.     aglDescribeRenderer(info, AGL_COMPLIANT, &rv);
  92.     printf("        AGL_COMPLIANT       : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  93.     
  94.     aglDescribeRenderer(info, AGL_MULTISCREEN, &rv);
  95.     printf("        AGL_MULTISCREEN     : %s\n", (rv ? "GL_TRUE" : "GL_FALSE"));
  96.     
  97.     aglDescribeRenderer(info, AGL_BUFFER_MODES, &rv);
  98.     printf("        AGL_BUFFER_MODES    : 0x%X\n", rv);
  99.     PrintBufferModes(rv);
  100.     
  101.     aglDescribeRenderer(info, AGL_MIN_LEVEL, &rv);
  102.     printf("        AGL_MIN_LEVEL       : %d\n", rv);
  103.     
  104.     aglDescribeRenderer(info, AGL_MAX_LEVEL, &rv);
  105.     printf("        AGL_MAX_LEVEL       : %d\n", rv);
  106.     
  107.     aglDescribeRenderer(info, AGL_COLOR_MODES, &rv);
  108.     printf("        AGL_COLOR_MODES     : 0x%X\n", rv);
  109.     PrintColorModes(rv);
  110.     
  111.     aglDescribeRenderer(info, AGL_ACCUM_MODES, &rv);
  112.     printf("        AGL_ACCUM_MODES     : 0x%X\n", rv);
  113.     PrintColorModes(rv);
  114.     
  115.     aglDescribeRenderer(info, AGL_DEPTH_MODES, &rv);
  116.     printf("        AGL_DEPTH_MODES     : 0x%X\n", rv);
  117.     PrintBitModes(rv);
  118.     
  119.     aglDescribeRenderer(info, AGL_STENCIL_MODES, &rv);
  120.     printf("        AGL_STENCIL_MODES   : 0x%X\n", rv);
  121.     PrintBitModes(rv);
  122.     
  123.     aglDescribeRenderer(info, AGL_MAX_AUX_BUFFERS, &rv);
  124.     printf("        AGL_MAX_AUX_BUFFERS : %d\n", rv);
  125.     
  126.     aglDescribeRenderer(info, AGL_VIDEO_MEMORY, &rv);
  127.     printf("        AGL_VIDEO_MEMORY    : %d\n", rv);
  128.     
  129.     aglDescribeRenderer(info, AGL_TEXTURE_MEMORY, &rv);
  130.     printf("        AGL_TEXTURE_MEMORY  : %d\n", rv);
  131. }
  132.  
  133. static void CheckGetRendererInfo(GDHandle device)
  134. {
  135.     AGLRendererInfo info, head_info;
  136.     GLint inum;
  137.  
  138.     head_info =  aglQueryRendererInfo(&device, 1);
  139.     if(!head_info)
  140.     {
  141.         printf("aglQueryRendererInfo : Info Error\n");
  142.         return;
  143.     }
  144.     
  145.     info = head_info;
  146.     inum = 0;
  147.     while(info)
  148.     {
  149.         printf("\n    Renderer : %d\n", inum);
  150.         PrintInfoStats(info);
  151.         info = aglNextRendererInfo(info);
  152.         inum++;
  153.     }
  154.     
  155.     aglDestroyRendererInfo(head_info);
  156. }
  157.  
  158. int main(int argc, char** argv)
  159. {
  160.     GLenum   err;
  161.     GDHandle device;
  162.     GLuint   dnum = 0;
  163.     
  164.     device = GetDeviceList();
  165.     while(device)
  166.     {
  167.         printf("\nDevice : %d\n", dnum);
  168.         CheckGetRendererInfo(device);
  169.         device = GetNextDevice(device);
  170.         dnum++;
  171.     }
  172.         
  173.     err = aglGetError();
  174.     if(err != AGL_NO_ERROR) printf("aglGetError - %s\n", aglErrorString(err));
  175.  
  176.    return 0;
  177. }
  178.